import cookie from '@/utils/store/cookie.js'
import {
	VUE_APP_API_URL
} from '@/config'

const codeMap = [{
	901: '未使用原微信号登录，如需更改请联系客服',
	902: '没上传服务协议',
	903: '没上传身份证',
	904: '全部没上传',
}]

function service(options = {}) {
	options.url = `${VUE_APP_API_URL}${options.url}`;
	// 判断本地是否存在token，如果存在则带上请求头
	const token = cookie.get('token')

	if (token) {
		options.header = {
			'content-type': 'application/json',
			'Authorization': `${token}`, // 这里是token(可自行修改)
			'token': `${token}`, // 这里是token(可自行修改)
			...options.header
		};
	}

	return new Promise((resolved, rejected) => {
		options.success = (res) => {
			// 如果请求回来的状态码不是 0 则执行以下操作
			if (res.data.code !== 0) {

				// 判断code码，如果code码在codeMap中存在则弹出提示，否则不弹出提示
				if (res.data.code === 666 || res.data.code === 777 || res.data.code === 888) {
					uni.showModal({
						title: '提示',
						content: `${res.data.msg}`,
						success: function(res) {
							if (res.confirm) {

							} else if (res.cancel) {

							}
						},
					});
				
				}else {
					// 非成功状态码弹窗
					uni.showToast({
						icon: 'none',
						duration: 3000,
						title: `${res.data.msg}`
					});
				}

				// 登陆失效
				if (res.data.code === 999) {
					// 清除本地token
					cookie.remove('token')
					// 关闭所有页面返回到登录页
					uni.reLaunch({
						url: '/pages/login'
					})
				}
				// 返回错误信息
				resolved(res.data)
			} else {
				// 请求回来的状态码为200则返回内容
				resolved(res.data)
			}
		};
		options.fail = (err) => {
			// 请求失败弹窗
			uni.showToast({
				icon: 'none',
				duration: 3000,
				title: '服务器错误,请稍后再试'
			});
			rejected(err);
		};
		uni.request(options);
	});
}

export default service;